Applications executing on a data processing system can perform operations by requesting the system to perform specific tasks. It is possible for a single operation to result in several task requests. To handle the multiple requests, the tasks can be placed in one or more queues and various processes and utilities of the data processing system handle the queued operations. The performance of the several task requests may create resource contentions between the several tasks or between system related tasks performed by the operating system. Accordingly, data processing systems known in the art may implement some form of task prioritization.
While processor task prioritization is known in the art, prioritization can also be extended to other subsystems of the data processing system. However, the interaction between the priority levels of each prioritized subsystem may be complex, and the proper task priority to set for each subsystem may be counterintuitive. For example, if a task requests an I/O priority that conflicts with the task's processor priority the overall system performance may suffer. Accordingly, application developers may be reluctant to set the various subsystem priority settings for application tasks. Additionally, application developers may not immediately aware of new system priority classifications as the classifications become available.